#import <Foundation/Foundation.h>
/**
 ****************************************************************
 非公共字段说明
 字段名  全称                     意义                附加说明
 type	type                    消息类型             用来区分消息的类型
 t      timestamp               消息时间             消息发生的时间，有别于 ut 是消息上传的时间 ISO8601格式
 do     domain                  主键                监控指标的主键，长度不超过 255，会有关于主键的列表，也是详细报表的入口
 m      mode                    模式                H5 或者 native
 np     network protocol        网络协议             wifi/4g/3g/2g 等
 nc     network connection      网络连接类型          0/1/2/3 等编码
 ne     network entrance        网络入口 IP          机房入口 IP 地址
 fe     field event             事件统计             由 k 和 v 组成，k 代表了 key(key 可以自定义)，v 代表了 value，后端报表会对 v 的值进行累加，计算总和
 ft     field transaction       片段统计             由 k 和 v 组成，k 代表了 key(key 可以自定义)，v 代表了 value，后端报表会对 v 的值计算最大值、最小值、平均值、95线、99线
 d      data                    附加信息             可以放置任何内容
 ****************************************************************
 */
@interface JVPharosRootModel : NSObject

@property (nonatomic, copy) NSString *type;

@property (nonatomic, copy) NSString *domain;

@property (nonatomic, assign) NSString* t; // 通用协议 子类不需要赋值

@property (nonatomic, strong) NSString *rid;  //"request id", 请求id，随机码32位

@property (nonatomic, copy) NSString *np; // 通用协议 子类不需要赋值

@property (nonatomic, assign) NSInteger m; // 不设默认是native

@property (nonatomic, copy) NSString *d; // 附加字段

@property (nonatomic, strong) NSDictionary *p; // map 类型，放置任何的 key value。

@property (nonatomic, strong) NSNumber *z0; // 记录webview跳转事件 schema
// 通用协议 初始化方法需要type 和 domain
- (instancetype)initWith:(NSString *)type domain:(NSString *)domain;

// 通用协议 子类实现
- (NSDictionary *)fieldEvent;

// 通用协议 子类实现
- (NSDictionary *)fieldTransaction;

// 命令字, 通用协议直接返回domain，子类不需要实现; 网络打点和白屏打点返回url
- (NSString *)commandId;

// 返回item完整信息
// 走通用协议 不需要子类实现
- (NSDictionary *)pharosModeToDic;

@end
